package com.nwpu.server.learning.feign;

import com.nwpu.server.common.response.R;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.multipart.MultipartFile;

import java.io.OutputStream;

/**
 * @Author: YuXingZh
 * @Date: Created in 18:29 2022-01-23
 * @Description:
 */
@FeignClient("server-third-party")
public interface OssFeignService {
    /**
     * 1、CouponFeignService.saveSpuBounds(spuBoundTo);
     *      1）、@RequestBody将这个对象转为json。
     *      2）、找到gulimall-coupon服务，给/coupon/spubounds/save发送请求。
     *          将上一步转的json放在请求体位置，发送请求；
     *      3）、对方服务收到请求。请求体里有json数据。
     *          (@RequestBody SpuBoundsEntity spuBounds)；将请求体的json转为SpuBoundsEntity；
     * 只要json数据模型是兼容的。双方服务无需使用同一个to
     * @param file
     * @param storagePath
     * @return
     */
    @PostMapping("oss/uploadFiles")
    R uploadFiles(@RequestParam("file") MultipartFile file, @RequestParam("storagePath") String storagePath);

    @PostMapping("/file/oss/exportFile")
    R exportFile(OutputStream os, @RequestParam("fileName") String fileName);
}